﻿namespace CI.Organism
{
    /// <summary>The organisms location</summary>
    public interface ILocation
    {
        /// <summary>X Axis</summary>
        float XAxis
        {
            get;
            set;
        }

        /// <summary>Y Axis</summary>
        float YAxis
        {
            get;
            set;
        }

        /// <summary>Z Axis</summary>
        float ZAxis
        {
            get;
            set;
        }

        /// <summary>Max X radius used for basic collision detection</summary>
        float XRadius
        {
            get;
            set;
        }

        /// <summary>Max Y radius used for basic collision detection</summary>
        float YRadius
        {
            get;
            set;
        }

        /// <summary>Max Z radius used for basic collision detection</summary>
        float ZRadius
        {
            get;
            set;
        }

        /// <summary>Compare this objects location with another just on the x, y , z axis, not the radius etc</summary>
        /// <param name="location">Comparing object</param>
        /// <returns>are the the same location?</returns>
        bool CompareAxis(ILocation location, int compareDecimalPlaces);
    }
}